zhouqijie

GL简介

Unity的GL类是底层图形类。

使用

GL类提供了五种最基本的图像绘制种类,即线、三角形和四边形,绘制时以GL.Begin开始,以GL.End结束,中间通过GL.Color来更改颜色,通过GL.Vertex或者GL.Vertex3来添加顶点,如下所示。如果需要进行矩阵变换,则在GL.Begin之前进行矩阵变换。

GL类的方法一般在MonoBehaviour的OnRenderObject方法中调用。

设置材质

调用mat.SetPass(int)激活指定的Pass。参数从0mat.passCount

坐标变换

默认的绘制坐标系为世界坐标系。如果要在某个模型坐标系绘制,可以使用GL.MultMatrix()方法。

映射到屏幕空间的矩阵:GL.LoadPixelMatrix()
映射到正交空间的矩阵:GL.LoadOrtho()

视口分离:如果要在局部视口绘制,可以调用GL.Viewport()方法

GL.PushMatrix();
GL.LoadPixelMatrix();
GL.Viewport(new Rect(0, 0, Screen.width / 2, Screen.height / 2));
DrawXXX();
GL.PopMatrix();

示例

GL.PushMatrix();
lineMat.SetPass(0);
GL.MultMatrix(this.transform.localToWorldMatrix)

GL.Begin(GL.LINES);
GL.Color(Color.green);
GL.Vertex();
GL.Vertex();
GL.Vertex();
GL.Vertex();
GL.End()

GL.PopMatrix();





参考文章

https://www.cnblogs.com/llstart-new0201/p/12315708.html